<?php
/**
 * Created by PhpStorm.
 * User: HeiYanHeiMao
 * Date: 2020/2/27
 * Time: 17:46
 */

namespace app\model;


use think\facade\Db;

class GoodsModel
{
    private static $baseTable = 'eb_goods'; // 商品表
    private static $storeTable = 'eb_store'; // 商户表
    private static $cateTable = 'eb_category'; // 商品分类表

    /**商户添加商品
     * @param array $input 添加的数据
     * @param string $token token
     * @return \think\response\Json
     */
    public static function add($input, $token)
    {
        try {
            // 判断商户是否有效
            $redisConf = config('tools.redis');
            $redis = new \Redis();
            $redis->connect($redisConf['host'], $redisConf['port']);
            $storeId = $redis->get($token);
            if (!$storeId) return jsonFail('获取商户信息失败');
            $storeStatus = Db::table(self::$storeTable)->where('id', $storeId)->value('status');
            if ($storeStatus === null) return jsonFail('该商户不存在');
            // 0 未审核 1已审核 2审核未通过 3已禁用
            if ($storeStatus == 0) return jsonFail('该商户未审核,不能添加商品');
            if ($storeStatus == 2) return jsonFail('该商户审核未通过,不能添加商品');
            if ($storeStatus == 3) return jsonFail('该商户已禁用,不能添加商品');
            // 判断商品分类是否可用
            $cateInfo = Db::table(self::$cateTable)->where('id', $input['cate_id'])->value('id');
            if ($cateInfo === null ) return jsonFail('无效的商品分类,不能添加商品');
            // 添加数据
            $input['store_id'] = $storeId;
            $input['create_time'] = time();
            $rtn = Db::table(self::$baseTable)->insert($input);
            if ($rtn === 1) return jsonSuccess('添加成功');
            return jsonFail('添加失败');
        } catch (\Exception $e) {
            return jsonFail('服务内部错误~');
        }
    }
}